cookie是保存在客户端电脑中一种文本形式的数据. 它的作用是记录并追踪客户端使用方面的数据, 用于统计数据和达到更好的用户体验.
Flask的全局request对象包含了cookie属性, 它是个字典对象, 其键值对就是客户端收到的cookie的名称和值. 并且, cookie还记录了自己的过期时间, 路径, 以及网站域名.
在Flask中, 返回响应对象中会设置cookie对象, 我们可以使用make_response()
方法来从一个返回值或视图函数中获得一个响应对象. 然后, 可以使用响应对象的set_cookie()
方法来设置储存cookie.
读取cookie也很简单, request.cookies
的get()
方法可以从请求中读取一个cookie.
下面的应用中, 当我们进入URL '/' 时, 一个带有简单表单的页面被打开:
@app.route('/')
def index():
return render_template('index.html')
下面的HTML中, index.html包含一个简单表单:
<html>
<body>
<form action = "/setcookie" method = "POST">
<p><h3>Enter userID</h3></p>
<p><input type = 'text' name = 'nm'/></p>
<p><input type = 'submit' value = 'Login'/></p>
</form>
</body>
</html>
这个表单被post到URL'/setcookie', 相关的视图函数设置了一个名为userId的cookie, 并渲染了另一个页面.
@app.route('/setcookie', methods = ['POST', 'GET'])
def setcookie():
if request.method == 'POST':
user = request.form['nm']
resp = make_response(render_template('readcookie.html'))
resp.set_cookie('userID', user)
return resp
readcookie.html 包含了一个链接到另一个视图函数getcookie()的超链接. 这个函数读取我们之前设置的cookie并展示在浏览器中.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。